package top.dancun.common.utils;

import java.lang.reflect.Field;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;

/**
 * @author dancun
 */
public class DataUtils {
    /**
     *  从 Map<String,Object> 类型提取数据到 Map<String,String> 并讲空字符串替换为null
     * @param dataMap 需要添加到的map
     * @param params 数据源
     * @param paramsNames 参数名
     */
    public static void  mapAddNoEmpty(Map<String,String> dataMap ,Map<String,Object> params,String[] paramsNames){
        for(String paramsName :paramsNames){
            dataMap.put(paramsName, Objects.nonNull(params.get(paramsName)) && !"".equals(params.get(paramsName).toString())?params.get(paramsName).toString():null);

        }
    }
    public static Map<String,String>  mapAddNoEmpty(Map<String,Object> params,Class classz){
        Map<String,String> dataMap = new HashMap<>();
        Field[] fields = classz.getDeclaredFields();

        for(Field field :fields){
            String paramsName =field.getName();
            dataMap.put(paramsName, Objects.nonNull(params.get(paramsName)) && !"".equals(params.get(paramsName).toString())?params.get(paramsName).toString():null);

        }
        return dataMap;
    }
}
